﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace OFDParserLibrary
{
    internal static class XmlHelper
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="root"></param>
        /// <param name="xpaths">字符串数组，可能有的字段有别称（如fp:DocID 和 fp:DocId），在不同发票解析中别名不同，只要找到一个符合别名的value值就可以</param>
        /// <param name="nsp">命名空间</param>
        /// <returns></returns>
        public static string GetSingleNodeText(XmlNode root, string[] xpaths, XmlNamespaceManager nsp)
        {
            string txt = string.Empty;
            if (root == null || xpaths.Length == 0)
                return txt;
            XmlNode node = null;
            foreach (string xpath in xpaths)
            {
                node = root.SelectSingleNode(xpath, nsp);
                if (node != null) //只要找到一个对应的别名，获取node就可以退出
                    break;
            }
            //结束for循环后判断是否找到一个符合的node节点，没有需要扩展标准别名
            if (node == null)
            {
               // MessageBox.Show("该文件不符合国家规定的ofd规范，不能解析(未找到字段：" + string.Join(" ", xpaths) + ")");
                return "notFound";
            }
            txt = node.InnerXml;
            return txt;
        }
    }
}
